Lịch sử Chương_trình_máy_tính

Máy lập trình ban đầu

Các máy lập trình sớm nhất đi trước phát minh ra máy tính kỹ thuật số. Ngay từ thế kỷ thứ 9, một trình phát nhạc có thể lập trình được phát minh bởi anh em người Ba Tư Musu, người đã mô tả một người thổi sáo cơ khí tự động trong Sách thiết bị khéo léo.[2][3] Năm 1206, kỹ sư người Ả Rập Al-Jazari đã phát minh ra một chiếc máy đánh trống có thể lập trình trong đó máy tự động tạo âm nhạc cơ học để chơi các nhịp điệu và mẫu nhịp trống khác nhau.[4] Năm 1801, Joseph-Marie Jacquard đã nghĩ ra một khung dệt có thể dệt một mẫu vải bằng cách làm theo một loạt các thẻ đục lỗ. Các mẫu có thể được dệt và lặp đi lặp lại bằng cách sắp xếp các thẻ.[5]

Công cụ phân tích

Sơ đồ của Lovelace từ Note G, thuật toán máy tính được xuất bản đầu tiên

Năm 1837, Charles Babbage đã được truyền cảm hứng từ máy dệt của Jacquard để cố gắng xây dựng Công cụ phân tích.[5] Tên của các thành phần của thiết bị tính toán được mượn từ ngành dệt may. Trong ngành dệt, sợi được mang từ cửa hàng để xay. Thiết bị này sẽ có một "cửa hàng" - bộ nhớ chứa 1.000 số có 40 chữ số thập phân mỗi số. Các số từ "cửa hàng" sau đó sẽ được chuyển sang "máy nghiền" (tương tự CPU của máy hiện đại) để xử lý. Và một "luồng" đóng vai trò thực hiện các hướng dẫn được lập trình của thiết bị. Nó được lập trình bằng cách sử dụng hai bộ thẻ đục lỗ - một bộ thẻ để chỉ đạo thao tác và bộ kia cho các biến đầu vào.[5][6] Tuy nhiên, sau khi tiêu hết hơn 17.000 bảng tiền tài trợ của chính phủ Anh, hàng ngàn bánh xe và bánh răng của máy bị kẹt và các động cơ không bao giờ hoạt động hoàn toàn song song cùng nhau.[7]

Trong khoảng thời gian chín tháng vào năm 1842-43, Ada Lovelace đã dịch cuốn hồi ký của nhà toán học người Ý Luigi Menabrea. Cuốn hồi ký bao trùm Công cụ phân tích. Bản dịch chứa Note G, chi tiết hoàn toàn một phương pháp tính toán số Bernoulli bằng Công cụ phân tích. Ghi chú này được một số nhà sử học công nhận là chương trình máy tính được viết đầu tiên trên thế giới.[8]

Máy Turing phổ dụng

Năm 1936, Alan Turing đã giới thiệu thiết bị lý thuyết Universal Turing machine Có thể mô hình hóa mọi tính toán có thể được thực hiện trên một máy tính hoàn chỉnh Turing.[9] Đây là một máy trạng thái hữu hạn có băng đọc / ghi dài vô hạn. Máy có thể di chuyển băng qua lại, thay đổi nội dung của nó khi thực hiện thuật toán. Máy khởi động ở trạng thái ban đầu, trải qua một chuỗi các bước và dừng lại khi gặp trạng thái dừng.[10] Máy này được một số người coi là nguồn gốc của chương trình máy tính được lưu trữ bởi John von Neumann (1946) cho "Công cụ điện toán điện tử" hiện mang tên kiến trúc von Neumann.[11]

Máy tính lập trình ban đầu

Máy tính Z3, được phát minh bởi Konrad Zuse (1941) ở Đức, là một máy tính kỹ thuật số và có thể lập trình.[12] Một máy tính kỹ thuật số sử dụng điện làm thành phần tính toán. Z3 chứa 2.400 rơle để tạo mạch. Các mạch cung cấp một máy tính nhị phân, dấu phẩy động, với chín lệnh. Lập trình Z3 thông qua một bàn phím được thiết kế đặc biệt và băng đục lỗ.

ENIAC - Máy tính và tích hợp số điện tử (mùa thu 1945) là một máy tính hoàn chỉnh, đa năng, Turing đầy đủ, sử dụng 17.468 ống chân không để tạo ra các mạch. Tại lõi của nó là một loạt các Pascaline được nối với nhau.[13] 40 bộ phận của nó nặng 30 tấn, chiếm 1.800 foot vuông (167 m2), và tiêu thụ $650 mỗi giờ (giá trị tiền năm 1940) khi không sử dụng.[13] Nó có 20 máy cộng số cơ sở 10. Lập trình cho ENIAC mất tới hai tháng.[13] Ba bảng chức năng được đặt trên các bánh xe và cần được cuộn vào các bảng chức năng cố định. Các bảng chức năng được kết nối với các bảng chức năng bằng cách sử dụng cáp đen nặng. Mỗi bảng chức năng có 728 núm xoay. Lập trình ENIAC cũng liên quan đến việc thiết lập một số trong số 3.000 thiết bị chuyển mạch. Sửa lỗi một chương trình mất một tuần.[13] Các lập trình viên của ENIAC là những người phụ nữ được gọi chung là "những cô gái ENIAC".[14] ENIAC có các hoạt động song song. Các bộ tích lũy khác nhau có thể đồng thời hoạt động trên các thuật toán khác nhau. Nó đã sử dụng máy đục lỗ cho đầu vào và đầu ra, và nó được điều khiển bằng tín hiệu đồng hồ. Nó đã hoạt động được 8 năm, tính toán các thông số cho bom hydro, dự đoán các kiểu thời tiết và sản xuất các bàn bắn để ngắm súng cao xạ.

Manchester Baby (tháng 6 năm 1948) là một máy tính được lưu trữ chương trình.[15] Lập trình đã có thay đổi từ cáp di chuyển và quay số; thay vào đó, một chương trình máy tính được lưu trữ trong bộ nhớ dưới dạng số. Chỉ có ba bit bộ nhớ có sẵn để lưu trữ mỗi lệnh, vì vậy máy bị giới hạn với tám lệnh. 32 thiết bị chuyển mạch đã có sẵn để dùng vào việc lập trình.

Máy tính sau này

Chuyển mạch cho dữ liệu nhập thủ công trên Data General Nova 3, được sản xuất vào giữa những năm 1970

Các máy tính được sản xuất cho đến những năm 1970 có các công tắc phía trước để lập trình. Chương trình máy tính được viết trên giấy để tham khảo. Một hướng dẫn được thể hiện bằng một cấu hình cài đặt bật / tắt. Sau khi thiết lập cấu hình, một nút thực thi sẽ được nhấn. Quá trình này sau đó đã được lặp lại. Các chương trình máy tính cũng được nhập thủ công thông qua băng giấy hoặc thẻ đục lỗ. Sau khi phương tiện được tải, địa chỉ bắt đầu được đặt qua các công tắc và nhấn nút thực thi.[16]

Vào năm 1961, Burroughs B5000 được chế tạo riêng để được lập trình bằng ngôn ngữ ALGOL 60. Các mạch phần cứng đặc trưng để giai đoạn biên dịch được dễ hơn.[17]

Năm 1964, IBM System/360 là một dòng gồm sáu máy tính, mỗi máy tính có cùng kiến trúc tập lệnh. Model 30 là nhỏ nhất và ít tốn kém nhất. Khách hàng có thể nâng cấp và giữ lại phần mềm ứng dụng tương tự.[18] Mỗi mô hình Hệ thống / 360 có tính năng đa chương trình. Với sự hỗ trợ của hệ điều hành, nhiều chương trình có thể nằm trong bộ nhớ cùng một lúc. Khi một chương trình đang đợi đầu vào/đầu ra, chương trình khác có thể tính toán. Mỗi mô hình cũng có thể mô phỏng các máy tính khác. Khách hàng có thể nâng cấp lên System/360 và giữ lại phần mềm ứng dụng IBM 7094 hoặc IBM 1401 của họ.

Tài liệu tham khảo

WikiPedia: Chương_trình_máy_tính http://history-computer.com/ModernComputer/Relays/... http://gender.stanford.edu/news/2011/researcher-re... http://lambda.uta.edu/cse5317/notes/node3.html http://profs.scienze.univr.it/~manca/storia-inform... //dx.doi.org/10.1017%2FS1355771817000103 //www.worldcat.org/issn/1355-7718 https://archive.org/details/discretemathemat00rose... https://archive.org/details/eniac00scot/page/102 https://archive.org/details/eniac00scot/page/16 https://archive.org/details/structuredcomput00tane...